package controller;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;

import modelo.Celula;
import modelo.Equipe;
import modelo.Funcionario;
import service.EquipeService;
import service.FuncionarioService;

@Named
@ViewScoped
public class FuncionarioController implements Serializable {

	private static final long	serialVersionUID	= 2994828284880212036L;

	private Funcionario				funcionario;
	private List<Funcionario>		funcionarios;
	private Equipe equipe;
	private Long idEquipeSelecionada;
	
	@Inject
	private FuncionarioService		funcionarioService;
	
	@Inject
	private EquipeService			equipeService;
	
	public FuncionarioController() {

	}

	@PostConstruct
	public void init() {
		pesquisarFuncionarios();
		funcionario = new Funcionario();
	}

	public String salvar() {
		this.funcionario.setEquipe(equipeService.recuperarPorId(idEquipeSelecionada));
		funcionarioService.persistir(funcionario);
		return "";
	}

	public String editar() {
		funcionarioService.editar(funcionario);
		return "";
	}

	public String excluir() {
		funcionarioService.remover(funcionario);
		return null;
	}

	public void pesquisarFuncionarios() {
		setListFuncionario(funcionarioService.recuperarTodos());
	}
	
	public List<Equipe> getListaEquipes(){
		return equipeService.recuperarTodos();
	}

	public Funcionario getFuncionario() {
		return funcionario;
	}

	public void setFuncionario(Funcionario Funcionario) {
		this.funcionario = Funcionario;
	}

	public FuncionarioService getFuncionarioService() {
		return funcionarioService;
	}

	public void setFuncionarioService(FuncionarioService FuncionarioService) {
		this.funcionarioService = FuncionarioService;
	}

	public List<Funcionario> getListFuncionario() {
		return funcionarios;
	}

	public void setListFuncionario(List<Funcionario> listFuncionario) {
		this.funcionarios = listFuncionario;
	}

	public Equipe getEquipe() {
		return equipe;
	}

	public void setEquipe(Equipe equipe) {
		this.equipe = equipe;
	}

	public Long getIdEquipeSelecionada() {
		return idEquipeSelecionada;
	}

	public void setIdEquipeSelecionada(Long idEquipeSelecionada) {
		this.idEquipeSelecionada = idEquipeSelecionada;
	}

	public EquipeService getEquipeService() {
		return equipeService;
	}

	public void setEquipeService(EquipeService equipeService) {
		this.equipeService = equipeService;
	}
	
}
